package main

import "fmt"

// 定义除法因素结构
type DivideError struct {
	dividend int // 被除数
	divisor  int // 除数
}

// 显示错误
func (de *DivideError) Error() string {
	strFormat := `
		错误，除数为0.
		被除数:%d
		除数:0
	`
	return fmt.Sprintf(strFormat, de.dividend)
}

func Divide(dividend int, divisor int) (result int, errorMsg string) {
	if divisor == 0 {
		dData := DivideError{dividend: dividend, divisor: divisor}
		errorMsg = dData.Error()
		return
	} else {
		return dividend / divisor, ""
	}
}

func main() {
	cal1, msg := Divide(100, 10)
	fmt.Println("cal1", cal1)
	fmt.Println("msg", msg)
}
